package cc.messcat.service.fupin;

import cc.messcat.common.model.Pager;
import cc.messcat.common.service.BaseService;
import cc.messcat.entity.fupin.Family;
import cc.messcat.entity.fupin.FamilyHistory;
import cc.messcat.entity.system.McUser;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import java.util.List;

public interface FamilyService extends BaseService<Family>{

	public List queryFaList(Long id);
	
	public List queryFaAll();
	
	public List queryFaAlls(Long fid);
	
	public Pager laborTypeStatistics(McUser user, Integer pageNo, Integer pageSize, String year,String country,String village, String poverty);

	public HSSFWorkbook exportLaborTypeStatistics(McUser user, Integer pageNo, Integer pageSize, String year, String country,
		String village, String poverty);
	
	public Family getFamily(Family family);

	public Pager popuHealthyStatisPager(Integer pageNo, Integer pageSize,McUser user, String year, String country,String village, String poverty);
	
	public HSSFWorkbook exportPopuHealthyStatis(McUser user, Integer pageNo, Integer pageSize, String year, String poverty, String country, String village);

	public Pager popuCultureStatisPager(Integer pageNo, Integer pageSize,McUser user, String year, String country,String village, String poverty);

	public HSSFWorkbook exportPopuCultureStatis(McUser user, Integer pageNo, Integer pageSize, String year, String poverty, String country, String village);

	public Boolean getfid(Long id);

	public Boolean getid(Long id);
	
	public Family getFamily1(Family family);

	public Boolean getfids(Long fid);

	public Boolean getids(Long id);
	
	List<Family> queryFamilyByFid(Long fid);

	public Pager ductionLifeStatisPager(Integer pageNo, Integer pageSize, McUser user, String year, String country,
			String village, String poverty);

	public HSSFWorkbook exportDuctionLifeStatis(McUser user, Integer pageNo, Integer pageSize, String year,
			String poverty, String country, String village);

	public HSSFWorkbook exportLandResourceStatis(McUser user, Integer pageNo, Integer pageSize, String year,
			String poverty, String country, String village);

	public Pager landResourceStatisPager(Integer pageNo, Integer pageSize, McUser user, String year, String country,
			String village, String poverty);

	public Pager capitaIncomeStatisPager(Integer pageNo, Integer pageSize, McUser user, String year, String country,
			String village, String poverty);

	public HSSFWorkbook exportCapitaIncomeStatis(McUser user, Integer pageNo, Integer pageSize, String year,
			String poverty, String country, String village);

	public Pager fuelTypeStatisPager(Integer pageNo, Integer pageSize, McUser user, String year, String country,
			String village, String poverty);
	
	public HSSFWorkbook exportFuelTypeStatis(McUser user, Integer pageNo, Integer pageSize, String year, String poverty,
			String country, String village);

	public Pager entranceRoadStatisPager(Integer pageNo, Integer pageSize, McUser user, String year, String country,
			String village, String poverty);

	public HSSFWorkbook exportEntranceRoadStatis(McUser user, Integer pageNo, Integer pageSize, String year,
			String poverty, String country, String village);

	public Pager familyIncomeStatisPager(Integer pageNo, Integer pageSize, McUser user, String year, String country,
			String village, String poverty);

	public HSSFWorkbook exportFamilyIncomeStatis(McUser user, Integer pageNo, Integer pageSize, String year,
			String poverty, String country, String village);

	public Pager transferableIncStatisPager(Integer pageNo, Integer pageSize, McUser user, String year, String country,
			String village, String poverty);

	public HSSFWorkbook exportTransferableIncStatis(McUser user, Integer pageNo, Integer pageSize, String year,
			String poverty, String country, String village);

	public void modifyObject2(Family family);

	public Long addFamily(Family family);

	public Family get(Long sid);

	public List<Family> queryFaAll2();

	public List<Family> queryFamilyByid(Long id);

	public List<Family> queryFamilyByfidnull();

	public List<Family> queryFaAllid();

	public Family familyBuId(Long sid);
	
	/**
	 * 添加家庭成员变更历史
	 * @param familyHistory
	 * @return
	 */
	public Long addFamilyHistory(FamilyHistory familyHistory);

	public void merge(Family f);

    Long getFamilyCount(String annual, Long id);
}
